﻿/*请求loading控制*/
var wangeditor = angular.module('wangeditordrective',[ 'Common']);
/*******************附文本编辑器指令**********************/
wangeditor.directive('contenteditable', ['sysUserInfo', '$rootScope', 'Msg', function (sysUserInfo, $rootScope, Msg) {
    return {
        restrict: 'AE',
        require: '?ngModel',
        scope: {
            configbtn: '=',
            inputtext: '=', //返回输入的纯文本
            opFun: '&'
        },
        link: function (scope, element, attrs, ngModel) {
            console.log(scope.configbtn);
            // 初始化 编辑器内容
            if (!ngModel) { // 如果没有ngmodel 则退出此方法
                return;
            }

            console.log(ngModel);
            // 更新富文本编辑器的内容
            ngModel.$render = function () {
                element.html(ngModel.$viewValue || '');
            };
            //监听有没有变化
            element.on('blur keyup change', function () {
                scope.$apply(readViewText);

            });
            // 不需要初始化,初始化基于angularjs ng-model 属性的文本 
            // 将数据写入模型
            function readViewText() {
                var html = element.html();
                console.log("--txt:" + element.text());
                scope.inputtext = element.text(); //返回输入 的字符
                // 当我们清除了可编辑内容 时浏览器会留下一个
                //如果strip-br 属性 带上这个属性                        
                if (attrs.stripBr && html === '<br>') {
                    html = '';
                }
                //                console.log(html);
                ngModel.$setViewValue(html);
            }

            // 阻止输出log
            // wangEditor.config.printLog = false;
            // 创建编辑器
            var editor = new wangEditor(element); //+'&fileid='+fileid

            //如果uuid为空  默认给1
            if (attrs.uuid == undefined || attrs.uuid == null || attrs.uuid == "") {
                attrs.uuid = 1;
            }

            // 上传图片 必须在创建前配置
            editor.config.uploadImgUrl = $rootScope.fileurl + '/file/EditorUpload?userid=' + sysUserInfo.getuserinfo().user_ID + '&orgid=' + sysUserInfo.getuserinfo().organization_ID + '&upId=' + attrs.uuid;
            // 是否禁用图片地址插入
            //editor.config.hideLinkImg = true;

            // 自定义load事件  可以判断文件或者图片上传
            editor.config.uploadImgFns.onload = function (resultText, xhr) {
                // resultText 服务器端返回的text
                // xhr 是 xmlHttpRequest 对象，IE8、9中不支持
                //console.log(file);
                var str = $(".cont embed").first().attr("src");
                //alert(fileid);
                //debugger;
                // 上传图片时，已经将图片的名字存在 editor.uploadImgOriginalName
                var originalName = editor.uploadImgOriginalName || '';
                // 如果 resultText 是图片的url地址，可以这样插入图片：
                if (resultText.indexOf("http") != -1) {
                    editor.command(null, 'insertHtml', '<img src="' + resultText + '" alt="' + originalName + '" style="max-width:100%;"/>');
                } else {
                    Msg.warning("上传失败，请检查文件格式！");
                }
                // 如果不想要 img 的 max-width 样式，也可以这样插入：
                // editor.command(null, 'InsertImage', resultText);
            };
            //回调方法事件
            editor.config.fileSelectFns.onload = function () {
                scope.opFun();
            };
            //                    // 自定义timeout事件
            //                    editor.config.uploadImgFns.ontimeout = function (xhr) {
            //                        // xhr 是 xmlHttpRequest 对象，IE8、9中不支持
            //                        alert('上传超时');
            //                    };

            //                    // 自定义error事件
            //                    editor.config.uploadImgFns.onerror = function (xhr) {
            //                        // xhr 是 xmlHttpRequest 对象，IE8、9中不支持
            //                        alert('上传错误');
            //                    };

            editor.config.menus = scope.configbtn
            //            [
            //                                'source',
            //                                '|',
            //                                'bold',
            //                                'underline',
            //                                'italic',
            //                                'strikethrough',
            //                                'eraser',
            //                                'forecolor',
            //                                'bgcolor',
            //                                '|',
            //                                'quote',
            //                                'fontfamily',
            //                                'fontsize',
            //                                'head',
            //                                'unorderlist',
            //                                'orderlist',
            //                                'alignleft',
            //                                'aligncenter',
            //                                'alignright',
            //                                '|',
            //                                'link',
            //                                'unlink',
            //                                'table',
            //                                'emotion',
            //                                '|',
            //                                'img',
            //            //'video',
            //                                'location',
            //                                'insertcode',
            //                                '|',
            //                                'undo',
            //                                'redo',
            //                                'fullscreen'
            //                    ];
            // 关闭js过滤
            editor.config.jsFilter = false;
            // 取消粘贴过滤
            editor.config.pasteFilter = false;
            console.log(editor);

            editor.create();

            // 禁用
            //editor.disable();
            // 启用
            //editor.enable();

        }
    };
} ])
